#include "stdafx.h"
#include "Rayon.h"

Rayon::Rayon()
{
	nRefrac = 1.0f;
}

Rayon::Rayon(Point o, Vecteur dir)
{
	origine = o;
	direction = dir;
	origine.normalize();
	direction.normalize();
	nRefrac = 1.0f;
}

Rayon::Rayon(Point o, Vecteur dir, float n)
{
	origine = o;
	direction = dir;
	origine.normalize();
	direction.normalize();
	nRefrac = n;
}

Rayon::Rayon(Rayon const& rayon)
{
	origine = rayon.origine;
	direction = rayon.direction;
	nRefrac = rayon.nRefrac;
}

Rayon::~Rayon(){}

Rayon& Rayon::operator=(Rayon const& rayon)
{
	origine = rayon.origine;
	direction = rayon.direction;
	origine.normalize();
	direction.normalisation();
	nRefrac = rayon.nRefrac;
	return *this;
}

Point Rayon::getOrigine()
{
	return origine;
}

Vecteur Rayon::getDirection()
{
	return direction;
}

float Rayon::getRefrac()
{
	return nRefrac;
}

void Rayon::setOrigine(Point p)
{
	origine = p;
	p.normalize();
}

void Rayon::setDirection(Vecteur v)
{
	direction.setX(v.getX());
	direction.setY(v.getY());
	direction.setZ(v.getZ());
	direction.normalize();
}

void Rayon::setDirection(float x, float y, float z, float w)
{
	direction.setX(x);
	direction.setY(y);
	direction.setZ(z);
	direction.normalize();
}

void Rayon::setRefra(float n)
{
	nRefrac = n;
}
